package main

import (
	"fmt"
	"strconv"
)

// stroncv包实现了基本数据类型与其字符串表示的转换
func main() {
	// 字符串和整数类型的转换
	// func Atoi(s string) (i int, err error)
	str := "18"
	i, err := strconv.Atoi(str)
	if err != nil {
		fmt.Println("转换异常")
	} else {
		fmt.Println(i)
	}

	// 将整形转换为字符串类型
	// func Itoa(i int) string
	x := 18
	str1 := strconv.Itoa(x)
	if err != nil {
		fmt.Println("整型转换字符串类型失败")
	} else {
		fmt.Printf("%T %v\n", str1, str1)
	}

	// parse系列函数
	// func ParseBool(str string) (value bool, err error)
	// 它接受1、0、t、f、T、F、true、false、True、False、TRUE、FALSE；否则返回错误。
	x2 := "t"
	x3 := "f"
	bool1, err := strconv.ParseBool(x2)
	bool2, err := strconv.ParseBool(x3)
	fmt.Printf("%T %v\n", bool1, bool1)
	fmt.Printf("%T %v\n", bool2, bool2)

	// func ParseInt(s string, base int, bitSize int) (i int64, err error)
	// func ParseUint(s string, base int, bitSize int) (n uint64, err error)
	// func ParseFloat(s string, bitSize int) (f float64, err error)

	// format系列函数

	//func FormatBool(b bool) string
	b := true
	boolstr := strconv.FormatBool(b)
	fmt.Printf("%T %v\n", boolstr, boolstr)

	// func FormatInt(i int64, base int) string
	var i3 int64 = 18
	intstr := strconv.FormatInt(i3,10)
	fmt.Printf("%T %v\n", intstr, intstr)

	// func FormatUint(i uint64, base int) string
	var i4 uint64 = 18
	intstr1 := strconv.FormatUint(i4,10)
	fmt.Printf("%T %v\n", intstr1, intstr1)
}
